An application or software can carry out a function, for example, an accounting or payroll function. Applications are used to increase productivity, to measure productivity and to perform enterprise or corporate functions accurately. The applications may, for example, include applications in the fields of customer relationship management (CRM), enterprise resource planning (ERP), enterprise content management (ECM), business process management (BPM) and product lifecycle management, etc. The applications are commonly installed on “backend” computer systems that deal with databases and have data processing components. Each backend computer system's infrastructure may consist of one or more physical machines, virtual machines, central processing units, data storage devices, disk drives and other resources, distributed over diverse locations or nodes connected by a computer network. The applications can have interactive user-application interfaces. Users on client computing devices (e.g., laptop computers, desktop computers, notebook computers, etc.) can connect to a backend computer system to access or manipulate data stored in databases hosted on the backend computer system, (e.g., to run analytics and reports).
With the ready availability of advanced computing and communications technologies, “on premise” installation of an application by each organization or enterprise may not be needed or economically desirable. The backend computer systems or supporting infrastructure (e.g., an application server) for the application can be placed in the “cloud” (e.g., by a third-party provider) and the application can be offered as a cloud computing service to remote clients or end users. The remote clients or end users may have diverse technological needs or interaction capabilities. For example, the remote clients or end users may have or use heterogeneous computing platforms (e.g., smartphone, desktop PC, tablet, embedded devices, etc.) using different programming/markup languages or having different input/output capabilities (e.g., keyboard, mouse, (multi-)touch, data gloves, motion sensors, monitors, head-mounted displays) with different interaction modalities (e.g., graphics, speech, haptics, gesture, etc.).
Consideration is now being given to ways of providing an application as a cloud computing service to remote clients or end users having diverse technological needs or interaction capabilities in a practical and effective manner.